package chapter07;

/**
 * Created by Miracle yaochengwei on 2022/6/26 21:30
 */
public class OverLoadExercise01 {
    /*
编写程序，类Methods中定义三个重载方法并调用。方法名为m。
三个方法分别接收一个int参数、两个int参数、一个字符串参数。分别执行平方运算并输出结果，相乘并输出结果，输出字符串信息。在主类的main （)方法中分别用参数区别调用三个方法

定义三个重载方法max()，第一个方法，返回两个int值中的最大值，
第二个方法，返回两个double值中的最大值，第三个方法，
返回三个double值中的最大值，并分别调用三个方法

*/
   static class Methods{
        //分析
        //1方法名max
        // 2形参(int，int)
        // 3.int //返回两个int值中的最大值， 那返回的肯定就是int 值
        public int max(int n1,int n2){
            return n1>n2 ? n1 :n2;
        }
        //分析
        //1方法名max
        //2形参( double, double)
        //3. double
        public double max(double n1,double n2) {
            return n1 > n2 ? n1 : n2;
        }

        //分析
        //1方法名max
        //2形参( double, double,double)
        //3. double
        public double max(double n1,double n2,double n3) {
            //先求n1 和n2 的最大值
            double max1 = n1>n2 ? n1:n2;
            return max1 > n3 ?max1 :n3;
        }

        public double max(double n1,double n2,int n3) {
            System.out.println("double n1,double n2,int n3");
            //先求n1 和n2 的最大值
            double max1 = n1>n2 ? n1:n2;
            return max1 > n3 ?max1 :n3;
        }

            //分析
        //1方法名m
        // 2形参(int)
        // 3.void
        public void m(int n){
            System.out.println("平方=" + (n*n));
        }
        //1方法名m
        // 2形参(int，int)
        // 3.void
        public void m(int n1,int n2){
            System.out.println("相乘=" + (n1*n2));
        }
        //1方法名m
        // 2形参(String)
        // 3.void
        public void m(String str){
            System.out.println("传入的str=" + str);
        }
    }
    public static void main(String[] args) {
        //在主类的main,()方法中分别用参数区别调用三个方法
       Methods method = new Methods();
       method.m(10);//100
        method.m(10,20);//200
        method.m("韩顺平教育 hello");//字符串信息

        //测试
        System.out.println(method.max(10,24));//24
        System.out.println(method.max(10.1,24.4));//24.4
        System.out.println(method.max(10.1,1.4,30.0));//30  int低精度，复给double可以转换的

    }
}
